package com.niiwoo.civet.trade.service.newRefund;

import com.niiwoo.civet.trade.dto.request.RefundRequestDTO;
import com.niiwoo.civet.trade.dto.response.RefundResponseDTO;

import javax.validation.constraints.NotNull;

/**
 * 还款请求分发
 * @author wangjun
 */
public interface RefundDispatchDubboService
{
    /**
     * app还款
     *
     * @param refundRequestDTO
     * @return
     */
    default Long refund(@NotNull RefundRequestDTO refundRequestDTO){{ throw new UnsupportedOperationException("不支持的方法"); }}


    /**
     * 还款查询
     * @param refundOrderId
     * @return
     */
    default RefundResponseDTO refundQuery(@NotNull Long refundOrderId){{ throw new UnsupportedOperationException("不支持的方法"); }}

    /**
     * 还款查询
     * @param refundOrderId
     * @return
     */
    default RefundResponseDTO refundQueryDetail(@NotNull Long refundOrderId,@NotNull Boolean isNeedDetail){{ throw new UnsupportedOperationException("不支持的方法"); }}
    /**
     * 还款查询(优先使用还款订单号查询)
     * @param orgRequestNo
     * @return
     */
    default Long refundOrderQuery(String orgRequestNo){{ throw new UnsupportedOperationException("不支持的方法"); }}



    /**
     * 代还
     * @param refundRequestDTO
     * @return
     */
    default Long substituteRefund(@NotNull RefundRequestDTO refundRequestDTO){{ throw new UnsupportedOperationException("不支持的方法"); }}

    /**
     * 线下还款
     */
    default void offLineRefund(String borrowUserId, Long projectId){
        throw new UnsupportedOperationException("不支持的方法");
    }

}